/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package listcontrol;

import controllers.DatabaseController;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.util.ArrayList;

/**
 *
 * @author gravena
 */
public class ControlThread implements Runnable {
    private DatagramSocket sock;    
    public static final int PORT = 40100;
    private final DatabaseController dbController;
    
    public ControlThread(DatabaseController dbController) {
        //SE POSSÍVEL, USAR APENAS OS MÉTODOS DO DBCONTROLLER, SEM ACESSAR REMOTE LISTS
        this.dbController = dbController;
        try {
            this.sock = new DatagramSocket(ControlThread.PORT);            
        } catch (IOException ex) {
            System.err.println("Não foi possível abrir o socket!\n" + ex.getMessage());
        }
    }
    
    @Override
    public void run() {
        while(true) {
            try {
            byte[] buf = new byte[40];
            DatagramPacket packet = new DatagramPacket(buf, buf.length);
            sock.receive(packet); // Blocking call            
            
            new Thread(new ActionThread(dbController,packet)).start();
            } catch(IOException ex) {
                System.err.println("Não foi possível abrir o socket!\n" + ex.getMessage());
            }
        }
    }
    
}
